<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title></title>
	<link href="../styles/minimenu.css" rel="stylesheet" type="text/css">
	<link href="../styles/gmap.css" rel="stylesheet" type="text/css">
	<script src="../js/gmap.js" type="text/javascript"></script>
    <script src="../js/validator.js" type="text/javascript"></script>
    <script src="../js/myClass/MyClass.js" type="text/javascript"></script>
    <script src="../js/clases/GestorDirElement.js" type="text/javascript"></script>
    <script src="../js/gmap.js" type="text/javascript"></script>
    <script src="../js/utils.js" type="text/javascript"></script>
	<?php include ("../config.php"); ?>
<!--    <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=< ?=GMAP_KEY?>" type="text/javascript"></script>-->

    <script type="text/javascript">
		var geo = null; //objeto Google GeoCoder
		var typeSearch = 0; //0:Busqueda por direccion, 1:Busqueda por coordenadas
		var DEFAULTTYPEMARKER = <?=DEFAULT_TYPE_MARKER?>;
		function cleanFormBuscarPunto(){
			window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'none';
			window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = "";
			document.getElementById('tipoPunto').value=0;
			document.getElementById('nombrePunto').value="";
			document.getElementById('searchPuntoCalle').value="";
			document.getElementById('searchPuntoAltura').value="";
			document.getElementById('searchLatitud').value="";
			document.getElementById('searchLongitud').value="";
			document.getElementById('searchPuntoCiudad').value = window.parent.GEO_CIUDAD;
			document.getElementById("searchPuntoProvincia").value = window.parent.GEO_PROVINCIA;
			document.getElementById('searchPuntoPais').value= window.parent.GEO_PAIS;
		}

		function validateFormBuscarLatLon(){
			var errorMsg = '';
			var latitud = document.getElementById("searchLatitud").value;
			var longitud = document.getElementById("searchLongitud").value;
			var nombre = document.getElementById("nombrePunto").value;
			var tipo = document.getElementById('tipoPunto').value;

			if (trim(latitud)!=''){
				//if (!_digits(latitud))
					//errorMsg += "El campo 'latitud' debe ser numerico.<br>";
				}
			else
				errorMsg += "El campo 'latitud' es obligatorio.<br>";

			if (trim(longitud)!=''){
				//if (!_digits(longitud))
					//errorMsg += "El campo 'longitud' debe ser numerico.<br>";
				}
			else
				errorMsg += "El campo 'longitud' es obligatorio.<br>";

			if (tipo == 0){
				errorMsg += "Debe seleccionar un tipo de marca";
				}

			if (trim(nombre)!='')
				if (!_validString(nombre))
					errorMsg += "El campo 'Nombre punto' no acepta caracteres especiales.<br>";

			if (errorMsg == '')
				return true;
			window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = errorMsg;
			window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'block';
			return false;
		}

		function validateFormBuscarPunto(){
			var errorMsg = '';
			var calle = document.getElementById("searchPuntoCalle").value;
			var altura = document.getElementById("searchPuntoAltura").value;
			var ciudad = document.getElementById("searchPuntoCiudad").value;
			var provincia = document.getElementById("searchPuntoProvincia").value;
			var pais = document.getElementById("searchPuntoPais").value;
			var nombre = document.getElementById("nombrePunto").value;
			var tipo = document.getElementById('tipoPunto').value;

			if (trim(calle)!=''){
				if (!_validString(calle))
					errorMsg += "El campo 'calle' no acepta caracteres especiales.<br>";
				}
			else
				errorMsg += "El campo 'calle' es obligatorio.<br>";

			if (trim(altura)!=''){
				if (!_digits(altura))
					errorMsg += "El campo 'altura' debe ser numerico.<br>";
				}
			else
				errorMsg += "El campo 'altura' es obligatorio.<br>";

			if (trim(ciudad)!=''){
				if (!_validString(ciudad))
					errorMsg += "El campo 'ciudad' no acepta caracteres especiales.<br>";
				}
			else
				errorMsg += "El campo 'ciudad' es obligatorio.<br>";

			if (trim(provincia)!='')
				if (!_validString(provincia))
					errorMsg += "El campo 'provincia' no acepta caracteres especiales.<br>";

			if (trim(pais)!='')
				if (!_validString(pais))
					errorMsg += "El campo 'pais' no acepta caracteres especiales.<br>";

			if (trim(nombre)!='')
				if (!_validString(nombre))
					errorMsg += "El campo 'Nombre punto' no acepta caracteres especiales.<br>";

			if (tipo == 0){
				errorMsg += "Debe seleccionar un tipo de marca";
				}

			if (errorMsg == '')
				return true;
			window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = errorMsg;
			window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'block';
			return false;
		}

	// ====== Array for decoding the failure codes ======
      var reasons=[];
//      reasons[G_GEO_SUCCESS]            = "Success";
//      reasons[G_GEO_MISSING_ADDRESS]    = "Dirección No Encontrada: La direccion falta o carece de valor.";
//      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Dirección Desconocida: La ubicación geográfica correspondiente no se ha podido encontrar para los datos especificados.";
//      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Direccion No Disponible: La codificación geográfica de la dirección no pueden ser devuelta debido a razones legales o contractuales";
//      reasons[G_GEO_BAD_KEY]            = "Error de Clave: La API es inválida o no coincide con el dominio para la que se asigno";
//      reasons[G_GEO_TOO_MANY_QUERIES]   = "Demasiadas Preguntas: La cuota de códigos geográficos asignada a este sitio ha sido superada.";
//      reasons[G_GEO_SERVER_ERROR]       = "Error del servidor: La solicitud de geocodificación no pudo ser procesada con éxito.";
//      reasons[403]                      = "Error 403: Probablemente error causado por el tratamiento de datos inválidos JSON.";

      // ====== Geocoding ======
      function pointFromAddressError(msg){
    	  window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = msg;
			window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'block';
      }
      function pointFromAddressOk(p){
    	  // Imprimimos las coordenadas del resultado y localizamos el punto en el mapa
		  var gestorDir = new GestorDirElement();
		  gestorDir.lon = p[0];
		  gestorDir.lat = p[1];
		  gestorDir.tipo = document.getElementById('tipoPunto').value;
		  var nombre = document.getElementById("nombrePunto").value;
		  if (trim(nombre)!='')
		  	gestorDir.name = nombre;
		  window.parent.cMapController.getMapActive().marcarGestorDir(gestorDir);
      }
      function getPointFromAddress(adress) {
    	  window.parent.cGeoController.getPointFromAddress(adress,"_iframe-searchGestorDir");


    	  
//        geo.getLocations(adress, function (result)
//          {
//            // Si esta todo OK
//            if (result.Status.code == G_GEO_SUCCESS) {
//              // Asumimos que la primer coordenada encontrada es la correcta
//              p = result.Placemark[0].Point.coordinates;
//			  // Imprimimos las coordenadas del resultado y localizamos el punto en el mapa
//			  var gestorDir = new GestorDirElement();
//			  gestorDir.lat = p[1];
//			  gestorDir.lon = p[0];
//			  gestorDir.tipo = document.getElementById('tipoPunto').value;
//			  var nombre = document.getElementById("nombrePunto").value;
//			  if (trim(nombre)!='')
//			  	gestorDir.name = nombre;
//			  window.parent.cMapController.getMapActive().marcarGestorDir(gestorDir);
//            }
//            // ====== Decodificar el estado de error ======
//            else {
//                reason="Code "+result.Status.code;
//                if (reasons[result.Status.code]) {
//                  reason = reasons[result.Status.code];
//                }
//                msg = "Error = '" + reason + "'<br>";
//                window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = msg;
//				window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'block';
//            }
//         }
//        );
      }

		function GSearchPoint(){
			window.parent.document.getElementById("gestorDirErrorDisplay").style.display = 'none';
			window.parent.document.getElementById("gestorDirErrorDisplay").innerHTML = "";
			if(typeSearch==0){ //Busqueda por Direccion
				if (validateFormBuscarPunto()){
					var adress = document.getElementById("searchPuntoAltura").value;
					adress += ', ' + document.getElementById("searchPuntoCalle").value;
					adress += ', ' + document.getElementById("searchPuntoAltura").value;
					adress += ', ' + document.getElementById("searchPuntoCiudad").value;
					if (document.getElementById("searchPuntoProvincia").value!='')
						adress += ', ' + document.getElementById("searchPuntoProvincia").value;
					adress += ', ' + document.getElementById("searchPuntoPais").value;
					getPointFromAddress(adress);
				}
			}
			else{ //Busqueda por Latitud/Longitud
				if (validateFormBuscarLatLon()){
					var gestorDir = new GestorDirElement();
			  		gestorDir.lat = document.getElementById("searchLatitud").value;
			  		gestorDir.lon = document.getElementById("searchLongitud").value;
			  		gestorDir.tipo = document.getElementById('tipoPunto').value;
					var nombre = document.getElementById("nombrePunto").value;
			  		if (trim(nombre)!='')
			  			gestorDir.name = nombre;
			 		window.parent.cMapController.getMapActive().marcarGestorDir(gestorDir);
				}
			}
		}

	</script>

</head>

<body style="background-color: #E3E3E3; margin:0px; padding:0px;" onload="initialize();" onunload="try {GUnload();} catch(e){};">
				<div id="cargando" style="display:none">
                	<table align="center" bgcolor="#FFFFFF" border="1" bordercolor="#999999">
		            	<tr>
        		        	<td width="60" align="center"><img src="../images/mundo.gif" /></td>
                			<td valign="middle" align="center"><span class="resaltado" style="background:white;">Conectando con Google GeoPos...</span></td>
		                </tr>
        		    </table>
                </div>
                <!-- CONTENIDO BUSQUEDA DE PUNTOS-->
                <div id="busqueda" style="display:none">
				<table border="0" >
                  <tr>
                  	<td>
                       <span class="inputLBL">Buscar por:</span>
                    </td>
                    <td>
                   		<div id="busquedaGesDirDireccion"><input type="radio" name="buscaPor" value="0" id="buscaPor_0" checked="checked" onchange="showDiv('busquedaXdir'); hideDiv('busquedaXcoor'); typeSearch=0;"/><span class="inputLBL">Direccion</span></div>
                        <div><input type="radio" name="buscaPor" value="1" id="buscaPor_1" onchange="hideDiv('busquedaXdir'); showDiv('busquedaXcoor'); typeSearch=1;" /><span class="inputLBL">Coordenadas</span></div>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Nombre marca:</span>
                    </td>
                    <td>
                       <input type="text" name="nombrePunto" id="nombrePunto" class="gmapInputText" size="26" maxlength="100" value="">
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Tipo marca:</span>
                    </td>
                    <td>
                       <select name="tipoPunto" id="tipoPunto" class="gmapSelect" style="width: 145px;">
						   <option value="0" ></option>
					   </select>
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                </table>
                <div id="busquedaXdir">
                <table border="0" >
                  <tr>
                  	<td>
                       <span class="inputLBL">Calle:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoCalle" id="searchPuntoCalle" class="gmapInputText" size="26" maxlength="50" value="">
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Altura:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoAltura" id="searchPuntoAltura" class="gmapInputText" size="10" maxlength="5" value="">
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Ciudad:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoCiudad" id="searchPuntoCiudad" class="gmapInputText" size="26" maxlength="50" value="">
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Provincia/Estado:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoProvincia" id="searchPuntoProvincia" class="gmapInputText" size="26" maxlength="50" value="">
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Pais:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoPais" id="searchPuntoPais" class="gmapInputText" size="26" maxlength="50" value="">
                    </td>
                  </tr>
                </table>
                </div>
                <div id="busquedaXcoor" style="display:none;">
                <table border="0" >
                  <tr>
                  	<td>
                       <span class="inputLBL">Latitud:</span>
                    </td>
                    <td>
                       <input type="text" class="gmapInputText" id="searchLatitud"/>
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Longitud:</span>
                    </td>
                    <td>
                       <input type="text" class="gmapInputText" id="searchLongitud"/>
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                </table>
                </div>
                </div>

     <script type="text/javascript">
	 	function initialize(){
			showDiv("busquedaGesDirDireccion");
	 		if(!window.parent.cGeoController.implementaGeoCoding()){
				hideDiv("busquedaGesDirDireccion");
				hideDiv('busquedaXdir');
				showDiv('busquedaXcoor'); 
				typeSearch=1;
				document.getElementById("buscaPor_1").checked = "checked";
			}
			//inicializar el selector del tipo de punto.
			var selectOption = DEFAULTTYPEMARKER; 
			var selector = document.getElementById('tipoPunto');
			if (selector.options.length==1){
				var opciones = window.parent.mapIcons.getMisPuntosLabels();
				for (var i=1; i<opciones.length-1; i++){
					var newOption = document.createElement('option');
					newOption.value = i;
					newOption.text = opciones[i];
					try {
    					selector.add(newOption, null); // para todos los browsers (STANDART)
					}
					catch(ex) {
						selector.add(newOption); // para IE
					}
					if(i == selectOption){
						document.getElementById('tipoPunto').selectedIndex = "1";
					}
				}
			}
			//------------------------------------------------------
			cleanFormBuscarPunto();
			selector.options[selectOption].selected = true;
			try {
				showDiv('cargando');
   				//geo = new GClientGeocoder();
				hideDiv('cargando');
				showDiv('busqueda');
				window.parent.document.getElementById('buscarPuntoGestorDirButton').style.visibility = "visible";
			}
			catch(e){
				hideDiv('busqueda');
				showDiv('cargando');
			}
		}
	 </script>
</body>
</html>
